The _f_l_o_o_r functions return the largest integer not greater than _x. The
argument _x is ddddoooouuuubbbblllleeee for _f_l_o_o_r, lllloooonnnngggg ddddoooouuuubbbblllleeee for _f_l_o_o_r_l, and ffffllllooooaaaatttt for
_f_f_l_o_o_r and its ANSI-named equivalent _f_l_o_o_r_f.
_c_o_p_y_s_i_g_n(_x,_y) returns the number with the magnitude of _x and the sign of
_y. _c_o_p_y_s_i_g_n_l is the lllloooonnnngggg ddddoooouuuubbbblllleeee counterpart of copysign.
_d_r_e_m(_x,_y) returns the remainder r := x - n*y where n is the integer
nearest the exact value of x/y; moreover if |n-x/y|=1/2 then n is even.
Consequently the remainder is computed exactly and |r| _< |y|/2. But
_d_r_e_m(_x,_0) is exceptional; see below under DIAGNOSTICS. _r_e_m_a_i_n_d_e_r is an
alternate entry point for _d_r_e_m. _d_r_e_m_l is the lllloooonnnngggg ddddoooouuuubbbblllleeee counterpart of
drem.
The _c_e_i_l functions return the smallest integer not less than _x. The
argument _x is ddddoooouuuubbbblllleeee for _c_e_i_l, lllloooonnnngggg ddddoooouuuubbbblllleeee for _c_e_i_l_l, and ffffllllooooaaaatttt for _f_c_e_i_l
and its ANSI-named equivalent _c_e_i_l_f.
The _t_r_u_n_c functions return the integer (represented as a floating-point
number) of _x with the fractional bits truncated. The argument _x is
ddddoooouuuubbbblllleeee for _t_r_u_n_c, lllloooonnnngggg ddddoooouuuubbbblllleeee for _t_r_u_n_c_l, and ffffllllooooaaaatttt for _f_t_r_u_n_c.
_f_a_b_s returns the absolute value of the ddddoooouuuubbbblllleeee _x, |_x|. It also has
counterparts of type lllloooonnnngggg ddddoooouuuubbbblllleeee and ffffllllooooaaaatttt,,,, namely _f_a_b_s_l, and _f_a_b_s_f,
respectively.
_r_i_n_t returns the integer (represented as a double precision number)
nearest its ddddoooouuuubbbblllleeee argument _x in the direction of the prevailing rounding
mode. _r_i_n_t_l is the lllloooonnnngggg ddddoooouuuubbbblllleeee counterpart of rint. _r_i_n_t has no
counterpart which accepts an argument of type ffffllllooooaaaatttt.
_f_m_o_d returns the floating-point remainder of the division of its ddddoooouuuubbbblllleeee
arguments _x by _y. It returns a number _f with the same sign as _x, such
that _x = _i_y + _f for some integer _i, and |_f| < |_y|. Hence both the
invocations
fmod(2.5,1.0)
fmod(2.5,-1.0)
yield 0000....5555, while the two invocations
fmod(-2.5,1.0)
fmod(-2.5,-1.0)
yield ----0000....5555.
_f_m_o_d_l is the counterpart of _f_m_o_d which accepts and returns values of type
lllloooonnnngggg ddddoooouuuubbbblllleeee and _f_m_o_d_f is the counterpart of _f_m_o_d which accepts and
returns values of type ffffllllooooaaaatttt.
DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
In the diagnostics below, functions in the standard math library _l_i_b_m._a,
are referred to as -_l_m versions, those in math library _l_i_b_m_x._a are
referred to as -_l_m_x versions, and those in the the BSD math library
_l_i_b_m_4_3._a are referred to as -_l_m_4_3 versions. The -_l_m and -_l_m_x versions
always return the default Quiet NaN and set _e_r_r_n_o to EDOM when a NaN is
used as an argument. A NaN argument usually causes the -_l_m_4_3 versions to